Add accessors for GtkDialog public vars, also implement GtkContainer::add/remove
authorTim Janik <timj@src.gnome.org>
Fri, 20 Jun 2008 10:57:35 +0000 (10:57 +0000)
committerTim Janik <timj@src.gnome.org>
Fri, 20 Jun 2008 10:57:35 +0000 (10:57 +0000)
svn path=/trunk/; revision=20486

gtk/gtkdialog.c
gtk/gtkdialog.h

index 934d2db49ecb3d3724b97b2c47d20f8212224141..8928d1253dfc57e16ea102cd09cb5492a911655e 100644 (file)
@@ -77,6 +77,11 @@ static void gtk_dialog_map               (GtkWidget        *widget);
 
 static void gtk_dialog_close             (GtkDialog        *dialog);
 
+static void gtk_dialog_add               (GtkContainer     *container,
+                                         GtkWidget        *widget);
+static void gtk_dialog_remove            (GtkContainer     *container,
+                                         GtkWidget        *widget);
+
 static ResponseData* get_response_data   (GtkWidget        *widget,
                                          gboolean          create);
 static void gtk_dialog_buildable_interface_init     (GtkBuildableIface *iface);
@@ -118,13 +123,18 @@ gtk_dialog_class_init (GtkDialogClass *class)
 {
   GObjectClass *gobject_class;
   GtkWidgetClass *widget_class;
+  GtkContainerClass *container_class;
   GtkBindingSet *binding_set;
   
   gobject_class = G_OBJECT_CLASS (class);
   widget_class = GTK_WIDGET_CLASS (class);
+  container_class = GTK_CONTAINER_CLASS (class);
   
   gobject_class->set_property = gtk_dialog_set_property;
   gobject_class->get_property = gtk_dialog_get_property;
+
+  container_class->add = gtk_dialog_add;
+  container_class->remove = gtk_dialog_remove;
   
   widget_class->map = gtk_dialog_map;
   widget_class->style_set = gtk_dialog_style_set;
@@ -350,6 +360,28 @@ gtk_dialog_get_property (GObject     *object,
     }
 }
 
+static void
+gtk_dialog_add (GtkContainer *container,
+               GtkWidget    *widget)
+{
+  GtkDialog *dialog;
+
+  dialog = GTK_DIALOG (container);
+
+  gtk_box_pack_start (GTK_BOX (dialog->vbox), widget, FALSE, FALSE, 0);
+}
+
+static void
+gtk_dialog_remove (GtkContainer *container,
+                  GtkWidget    *widget)
+{
+  GtkDialog *dialog;
+
+  dialog = GTK_DIALOG (container);
+
+  gtk_container_remove (GTK_CONTAINER (dialog->vbox), widget);
+}
+
 static gint
 gtk_dialog_delete_event_handler (GtkWidget   *widget,
                                  GdkEventAny *event,
@@ -1445,5 +1477,41 @@ gtk_dialog_buildable_custom_finished (GtkBuildable *buildable,
   g_slice_free (ActionWidgetsSubParserData, parser_data);
 }
 
+GtkHButtonBox *
+gtk_dialog_get_action_area (GtkDialog *dialog)
+{
+  g_return_val_if_fail (GTK_IS_DIALOG (dialog), NULL);
+
+  return dialog->action_area;
+}
+
+void
+gtk_dialog_pack_start (GtkDialog *dialog,
+                      GtkWidget *widget,
+                      gboolean   expand,
+                      gboolean   fill,
+                      guint      padding)
+{
+  g_return_if_fail (GTK_IS_DIALOG (dialog));
+  g_return_if_fail (GTK_IS_WIDGET (widget));
+
+  gtk_box_pack_start (GTK_BOX (dialog->vbox),
+                     widget, expand, fill, padding);
+}
+
+void
+gtk_dialog_pack_end (GtkDialog *dialog,
+                    GtkWidget *widget,
+                    gboolean   expand,
+                    gboolean   fill,
+                    guint      padding)
+{
+  g_return_if_fail (GTK_IS_DIALOG (dialog));
+  g_return_if_fail (GTK_IS_WIDGET (widget));
+
+  gtk_box_pack_end (GTK_BOX (dialog->vbox),
+                   widget, expand, fill, padding);
+}
+
 #define __GTK_DIALOG_C__
 #include "gtkaliasdef.c"
index 24252bb5a8ae46be4cace7b327ce027d31840455..e8b4d79ebdb6ac8f7b7996537f1b017f53349203 100644 (file)
@@ -34,6 +34,7 @@
 
 #include <gdk/gdk.h>
 #include <gtk/gtkwindow.h>
+#include <gtk/gtkhbbox.h>
 
 
 G_BEGIN_DECLS
@@ -171,6 +172,17 @@ void gtk_dialog_response           (GtkDialog *dialog,
 /* Returns response_id */
 gint gtk_dialog_run                (GtkDialog *dialog);
 
+GtkHButtonBox* gtk_dialog_get_action_area (GtkDialog *dialog);
+void           gtk_dialog_pack_start      (GtkDialog *dialog,
+                                          GtkWidget *widget,
+                                          gboolean   expand,
+                                          gboolean   fill,
+                                          guint      padding);
+void           gtk_dialog_pack_end        (GtkDialog *dialog,
+                                          GtkWidget *widget,
+                                          gboolean   expand,
+                                          gboolean   fill,
+                                          guint      padding);
 
 /* For private use only */
 void _gtk_dialog_set_ignore_separator (GtkDialog *dialog,